// 按奇偶排序数组
/*给你一个整数数组 nums，将 nums 中的的所有偶数元素移动到数组的前面，后跟所有奇数元素。

返回满足此条件的 任一数组 作为答案。
1 <= nums.length <= 5000
0 <= nums[i] <= 5000
*/

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
void swap(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}
int* sortArrayByParity(int* nums, int numsSize, int* returnSize) {
    int slow = -1;
    int quick = 0;
    *returnSize = numsSize;
    while (quick < numsSize) {
        if (nums[quick] % 2 == 0) {
            slow++;
            swap(nums + slow, nums + quick);
        }
        quick++;
    }
    return nums;
}



//统计范围内的元音字符串数
/*给你一个下标从 0 开始的字符串数组 words 和两个整数：left 和 right 。

如果字符串以元音字母开头并以元音字母结尾，那么该字符串就是一个 元音字符串 ，其中元音字母是 'a'、'e'、'i'、'o'、'u' 。

返回 words[i] 是元音字符串的数目，其中 i 在闭区间 [left, right] 内。
1 <= words.length <= 1000
1 <= words[i].length <= 10
words[i] 仅由小写英文字母组成
0 <= left <= right < words.length
*/
bool is_vowel_string(char* s) {
    int size = strlen(s);
    if ((s[0] == 'a' || s[0] == 'e' || s[0] == 'i' || s[0] == 'o' ||
         s[0] == 'u') &&
        (s[size - 1] == 'a' || s[size - 1] == 'e' || s[size - 1] == 'i' ||
         s[size - 1] == 'o' || s[size - 1] == 'u')) {
            return true;
    }
    return false;
}
int vowelStrings(char** words, int wordsSize, int left, int right) {
    int count = 0;
    for (int i = left; i <= right; i++) {
        if(is_vowel_string(words[i]))
        count++;
    }
    return count;
}